package main

import (
	"fmt"
	"github.com/boyane/chartroom/server/models"
	"net"
	"time"
)

// 初始化
func init()  {
	// 初始化连接池
	initPool("localhost:6379", 0,16,300 * time.Second)
	// 初始化一个UserDao
	models.MyUserDao = models.NewUserDao(pool)
}

// 服务器
func main() {
	listen, err := net.Listen("tcp", "0.0.0.0:8889")
	if err != nil{
		fmt.Println("net.Listen fail =", err)
		return
	}
	fmt.Println("服务器开始监听8889端口...")

	for {
		conn, err := listen.Accept()
		if err != nil{
			fmt.Println("listen.Accept fail =", err)
			continue
		}
		fmt.Println("客户端连接成功...")
		go process(conn)
	}
}

// 处理客户端请求
func process(conn net.Conn)  {
	defer func() { _ = conn.Close() }()

	// 实例化一个请求分发模块
	processor := &Processor{
		Conn: conn,
	}
	err := processor.Process()
	if err != nil{
		fmt.Println("客户端和服务器端通讯协议错误 err =", err)
		return
	}
}
